﻿using Abp.Domain.Entities.Auditing;
using Camc.Quality.RecordTable.FormClass;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Camc.Quality.ProcessRoute
{

    public class TableBaseShootDto : FullAuditedEntity<Guid>
    {

        #region 基础元素
        /// <summary>
        /// 表名
        /// </summary>
        public virtual string FormName { get;  set; }
        /// <summary>
        /// 序号
        /// </summary>
        public virtual int SerialNum { get;  set; }
        /// <summary>
        /// 工步ID
        /// </summary>
        public virtual Guid WorkStepEntityId { get;  set; }
        /// <summary>
        /// 工序ID
        /// </summary>
        public virtual Guid ProcessesEntityId { get;  set; }
        /// <summary>
        /// 排序
        /// </summary>
        public virtual int Sort { get;  set; }
        /// <summary>
        /// 部门
        /// </summary>
        public virtual string Deptment { get;  set; }
        /// <summary>
        /// 现场备注
        /// </summary>
        public virtual string RecordRemark { get;  set; }
        /// <summary>
        /// 检测签署
        /// </summary>
        public InspectionSignatureShootDto InspectionSignature { get; set; }
        /// <summary>
        /// 记录要求
        /// </summary>
        public RecordRequirementsShootDto RecordRequirements { get; set; }
        /// <summary>
        /// 多媒体
        /// </summary>
        public MultiMediaShootDto MultiMedia { get; set; }
        /// <summary>
        /// 实测结果表
        /// </summary>
        public MeasuredResultShootDto MeasuredResult { get; set; }
        /// <summary>
        /// 环境要素
        /// </summary>
        public EnvironmentShootDto Environment { get; set; }

        #endregion

        #region A2所属部段图号
        /// <summary>
        /// 所属部段值
        /// </summary>
        public virtual string ParentProductNum { get;  set; }
        /// <summary>
        /// 所属部段列名
        /// </summary>
        public virtual string ParentProductNum_DisplayName { get;  set; }
        /// <summary>
        /// 是否可操作
        /// </summary>
        public virtual bool ParentProductNum_Enable { get;  set; } = false;
        /// <summary>
        /// 是否显示
        /// </summary>
        public virtual bool ParentProductNum_Show { get;  set; } = false;
        /// <summary>
        /// 是否合并
        /// </summary>
        public virtual int ParentProductNum_Property { get;  set; } = 0;
        #endregion

        #region A3所属部段名称
        /// <summary>
        /// 部段名称值
        /// </summary>
        public virtual string ParentProductName { get;  set; }
        /// <summary>
        /// 部段列名
        /// </summary>
        public virtual string ParentProductName_DisplayName { get;  set; }
        /// <summary>
        /// 是否可操作
        /// </summary>
        public virtual bool ParentProductName_Enable { get;  set; } = false;
        /// <summary>
        /// 是否显示
        /// </summary>
        public virtual bool ParentProductName_Show { get;  set; } = false;
        /// <summary>
        /// 是否合并
        /// </summary>
        public virtual int ParentProductName_Property { get;  set; } = 0;
        #endregion

        #region A4零件1图号/代号
        /// <summary>
        /// 图号值
        /// </summary>
        public virtual string FisrtDrawingNum { get;  set; }
        /// <summary>
        /// 图号列名
        /// </summary>
        public virtual string FisrtDrawingNum_DisplayName { get;  set; }
        /// <summary>
        /// 是否可操作
        /// </summary>
        public virtual bool FisrtDrawingNum_Enable { get;  set; } = false;
        /// <summary>
        /// 是否显示
        /// </summary>
        public virtual bool FisrtDrawingNum_Show { get;  set; } = false;
        /// <summary>
        /// 是否合并
        /// </summary>
        public virtual int FisrtDrawingNum_Property { get;  set; } = 0;
        #endregion

        #region A5零件1名称
        /// <summary>
        /// 零件1名称值
        /// </summary>
        public virtual string FirstDrawingName { get;  set; }
        /// <summary>
        /// 零件1名称列名
        /// </summary>
        public virtual string FirstDrawingName_DisplayName { get;  set; }
        /// <summary>
        /// 是否可操作
        /// </summary>
        public virtual bool FirstDrawingName_Enable { get;  set; } = false;
        /// <summary>
        /// 是否显示
        /// </summary>
        public virtual bool FirstDrawingName_Show { get;  set; } = false;
        /// <summary>
        /// 是否合并
        /// </summary>
        public virtual int FirstDrawingName_Property { get;  set; } = 0;
        #endregion

        #region A6零件2图号/代号
        /// <summary>
        /// 图号值
        /// </summary>
        public virtual string SecondDrawingNum { get;  set; }
        /// <summary>
        /// 图号列名
        /// </summary>
        public virtual string SecondDrawingNum_DisplayName { get;  set; }
        /// <summary>
        /// 是否可操作
        /// </summary>
        public virtual bool SecondDrawingNum_Enable { get;  set; } = false;
        /// <summary>
        /// 是否显示
        /// </summary>
        public virtual bool SecondDrawingNum_Show { get;  set; } = false;
        /// <summary>
        /// 是否合并
        /// </summary>
        public virtual int SecondDrawingNum_Property { get;  set; } = 0;
        #endregion

        #region A7零件2名称
        /// <summary>
        /// 名称值
        /// </summary>
        public virtual string SecondDrawingName { get;  set; }
        /// <summary>
        /// 名称列名
        /// </summary>
        public virtual string SecondDrawingName_DisplayName { get;  set; }
        /// <summary>
        /// 是否可操作
        /// </summary>
        public virtual bool SecondDrawingName_Enable { get;  set; } = false;
        /// <summary>
        /// 是否显示
        /// </summary>
        public virtual bool SecondDrawingName_Show { get;  set; } = false;
        /// <summary>
        /// 是否合并
        /// </summary>
        public virtual int SecondDrawingName_Property { get;  set; } = 0;
        #endregion

        #region A8产品编号
        /// <summary>
        /// 产品编号值
        /// </summary>
        public virtual string ProductNum { get;  set; }
        /// <summary>
        /// 产品编号列名
        /// </summary>
        public virtual string ProductNum_DisplayName { get;  set; }
        /// <summary>
        /// 是否可操作
        /// </summary>
        public virtual bool ProductNum_Enable { get;  set; } = false;
        /// <summary>
        /// 是否显示
        /// </summary>
        public virtual bool ProductNum_Show { get;  set; } = false;
        /// <summary>
        /// 是否合并
        /// </summary>
        public virtual int ProductNum_Property { get;  set; } = 0;
        #endregion

        #region A9所属型号
        /// <summary>
        /// 所属型号值
        /// </summary>
        public virtual string Model { get;  set; }
        /// <summary>
        /// 所属型号列名
        /// </summary>
        public virtual string Model_DisplayName { get;  set; }
        /// <summary>
        /// 是否可操作
        /// </summary>
        public virtual bool Model_Enable { get;  set; } = false;
        /// <summary>
        /// 是否显示
        /// </summary>
        public virtual bool Model_Show { get;  set; } = false;
        /// <summary>
        /// 是否合并
        /// </summary>
        public virtual int Model_Property { get;  set; } = 0;
        #endregion

        #region A10记录项目
        /// <summary>
        /// 记录项目值
        /// </summary>
        public virtual string RecordElement { get;  set; }
        /// <summary>
        /// 记录项目列名
        /// </summary>
        public virtual string RecordElement_DisplayName { get;  set; }
        /// <summary>
        /// 是否可操作
        /// </summary>
        public virtual bool RecordElement_Enable { get;  set; } = false;
        /// <summary>
        /// 是否显示
        /// </summary>
        public virtual bool RecordElement_Show { get;  set; } = false;
        /// <summary>
        /// 是否合并
        /// </summary>
        public virtual int RecordElement_Property { get;  set; } = 0;
        #endregion

        #region A11记录元素
        /// <summary>
        /// 记录元素值
        /// </summary>
        public virtual string RecordItem { get;  set; }
        /// <summary>
        /// 记录元素列名
        /// </summary>
        public virtual string RecordItem_DisplayName { get;  set; }
        /// <summary>
        /// 是否可操作
        /// </summary>
        public virtual bool RecordItem_Enable { get;  set; } = false;
        /// <summary>
        /// 是否显示
        /// </summary>
        public virtual bool RecordItem_Show { get;  set; } = false;
        /// <summary>
        /// 是否合并
        /// </summary>
        public virtual int RecordItem_Property { get;  set; } = 0;
        #endregion

        #region A12所用工具编号
        /// <summary>
        /// 所用工具编号值
        /// </summary>
        public virtual string ToolUsed { get;  set; }
        /// <summary>
        /// 所用工具编号列名
        /// </summary>
        public virtual string ToolUsed_DisplayName { get;  set; }
        /// <summary>
        /// 是否可操作
        /// </summary>
        public virtual bool ToolUsed_Enable { get;  set; } = false;
        /// <summary>
        /// 是否显示
        /// </summary>
        public virtual bool ToolUsed_Show { get;  set; } = false;
        /// <summary>
        /// 是否合并
        /// </summary>
        public virtual int ToolUsed_Property { get;  set; } = 0;
        #endregion

        #region A13现场异常记录
        /// <summary>
        /// 现场异常记录值
        /// </summary>
        public virtual string AbnormalRecord { get;  set; }
        /// <summary>
        /// 现场异常记录列名
        /// </summary>
        public virtual string AbnormalRecord_DisplayName { get;  set; }
        /// <summary>
        /// 是否可操作
        /// </summary>
        public virtual bool AbnormalRecord_Enable { get;  set; } = false;
        /// <summary>
        /// 是否显示
        /// </summary>
        public virtual bool AbnormalRecord_Show { get;  set; } = false;
        /// <summary>
        /// 是否合并
        /// </summary>
        public virtual int AbnormalRecord_Property { get;  set; } = 0;
        #endregion

        #region A14合格证号
        /// <summary>
        /// 合格证号值
        /// </summary>
        public virtual string Certificate { get;  set; }
        /// <summary>
        /// 合格证号列名
        /// </summary>
        public virtual string Certificate_DisplayName { get;  set; }
        /// <summary>
        /// 是否可操作
        /// </summary>
        public virtual bool Certificate_Enable { get;  set; } = false;
        /// <summary>
        /// 是否显示
        /// </summary>
        public virtual bool Certificate_Show { get;  set; } = false;
        /// <summary>
        /// 是否合并
        /// </summary>
        public virtual int Certificate_Property { get;  set; } = 0;
        #endregion

        #region A15所用工具编号2
        /// <summary>
        /// 合格证号值
        /// </summary>
        public virtual string SecondToolUsed { get;  set; }
        /// <summary>
        /// 合格证号列名
        /// </summary>
        public virtual string SecondToolUsed_DisplayName { get;  set; }
        /// <summary>
        /// 是否可操作
        /// </summary>
        public virtual bool SecondToolUsed_Enable { get;  set; } = false;
        /// <summary>
        /// 是否显示
        /// </summary>
        public virtual bool SecondToolUsed_Show { get;  set; } = false;
        /// <summary>
        /// 是否合并
        /// </summary>
        public virtual int SecondToolUsed_Property { get;  set; } = 0;
        #endregion

        #region A16所用工具编号3
        /// <summary>
        /// 合格证号值
        /// </summary>
        public virtual string ThirdToolUsed { get;  set; }
        /// <summary>
        /// 合格证号列名
        /// </summary>
        public virtual string ThirdToolUsed_DisplayName { get;  set; }
        /// <summary>
        /// 是否可操作
        /// </summary>
        public virtual bool ThirdToolUsed_Enable { get;  set; } = false;
        /// <summary>
        /// 是否显示
        /// </summary>
        public virtual bool ThirdToolUsed_Show { get;  set; } = false;
        /// <summary>
        /// 是否合并
        /// </summary>
        public virtual int ThirdToolUsed_Property { get;  set; } = 0;
        #endregion

        #region A17 参数代号
        /// <summary>
        ///  参数代号
        /// </summary>
        public virtual string ParamCode { get;  set; }

        /// <summary>
        /// 参数代号列名
        /// </summary>
        public virtual string ParamCode_DisplayName { get;  set; }
        /// <summary>
        /// 是否可操作
        /// </summary>
        public virtual bool ParamCode_Enable { get;  set; } = false;
        /// <summary>
        /// 是否显示
        /// </summary>
        public virtual bool ParamCode_Show { get;  set; } = false;
        /// <summary>
        /// 是否合并
        /// </summary>
        public virtual int ParamCode_Property { get;  set; } = 0;
        #endregion
    }
    public class InspectionSignatureShootDto : FullAuditedEntity<Guid>
    {
        public InspectionSignatureShootDto()
        {

        }
        public InspectionSignatureShootDto(string inspectionSignatureName, string firstOperator, string firstOperator_DisplayName, bool firstOperator_Enable, bool firstOperator_Show, int firstOperator_Property, DateTime? firstOperatorData, string firstOperatorData_DisplayName, bool firstOperatorData_Enable, bool firstOperatorData_Show, int firstOperatorData_Property, string secondOperator, string secondOperator_DisplayName, bool secondOperator_Enable, bool secondOperator_Show, int secondOperator_Property, DateTime? secondOperatorData, string secondOperatorData_DisplayName, bool secondOperatorData_Enable, bool secondOperatorData_Show, int secondOperatorData_Property, string thirdOperator, string thirdOperator_DisplayName, bool thirdOperator_Enable, bool thirdOperator_Show, int thirdOperator_Property, DateTime? thirdOperatorData, string thirdOperatorData_DisplayName, bool thirdOperatorData_Enable, bool thirdOperatorData_Show, int thirdOperatorData_Property, string fourthOperator, string fourthOperator_DisplayName, bool fourthOperator_Enable, bool fourthOperator_Show, int fourthOperator_Property, DateTime? fourthOperatorData, string fourthOperatorData_DisplayName, bool fourthOperatorData_Enable, bool fourthOperatorData_Show, int fourthOperatorData_Property, string fifthOperator, string fifthOperator_DisplayName, bool fifthOperator_Enable, bool fifthOperator_Show, int fifthOperator_Property, DateTime? fifthOperatorData, string fifthOperatorData_DisplayName, bool fifthOperatorData_Enable, bool fifthOperatorData_Show, int fifthOperatorData_Property)
        {
            InspectionSignatureName = inspectionSignatureName;
            FirstOperator = firstOperator;
            FirstOperator_DisplayName = firstOperator_DisplayName;
            FirstOperator_Enable = firstOperator_Enable;
            FirstOperator_Show = firstOperator_Show;
            FirstOperator_Property = firstOperator_Property;
            FirstOperatorData = firstOperatorData;
            FirstOperatorData_DisplayName = firstOperatorData_DisplayName;
            FirstOperatorData_Enable = firstOperatorData_Enable;
            FirstOperatorData_Show = firstOperatorData_Show;
            FirstOperatorData_Property = firstOperatorData_Property;
            SecondOperator = secondOperator;
            SecondOperator_DisplayName = secondOperator_DisplayName;
            SecondOperator_Enable = secondOperator_Enable;
            SecondOperator_Show = secondOperator_Show;
            SecondOperator_Property = secondOperator_Property;
            SecondOperatorData = secondOperatorData;
            SecondOperatorData_DisplayName = secondOperatorData_DisplayName;
            SecondOperatorData_Enable = secondOperatorData_Enable;
            SecondOperatorData_Show = secondOperatorData_Show;
            SecondOperatorData_Property = secondOperatorData_Property;
            ThirdOperator = thirdOperator;
            ThirdOperator_DisplayName = thirdOperator_DisplayName;
            ThirdOperator_Enable = thirdOperator_Enable;
            ThirdOperator_Show = thirdOperator_Show;
            ThirdOperator_Property = thirdOperator_Property;
            ThirdOperatorData = thirdOperatorData;
            ThirdOperatorData_DisplayName = thirdOperatorData_DisplayName;
            ThirdOperatorData_Enable = thirdOperatorData_Enable;
            ThirdOperatorData_Show = thirdOperatorData_Show;
            ThirdOperatorData_Property = thirdOperatorData_Property;
            FourthOperator = fourthOperator;
            FourthOperator_DisplayName = fourthOperator_DisplayName;
            FourthOperator_Enable = fourthOperator_Enable;
            FourthOperator_Show = fourthOperator_Show;
            FourthOperator_Property = fourthOperator_Property;
            FourthOperatorData = fourthOperatorData;
            FourthOperatorData_DisplayName = fourthOperatorData_DisplayName;
            FourthOperatorData_Enable = fourthOperatorData_Enable;
            FourthOperatorData_Show = fourthOperatorData_Show;
            FourthOperatorData_Property = fourthOperatorData_Property;
            FifthOperator = fifthOperator;
            FifthOperator_DisplayName = fifthOperator_DisplayName;
            FifthOperator_Enable = fifthOperator_Enable;
            FifthOperator_Show = fifthOperator_Show;
            FifthOperator_Property = fifthOperator_Property;
            FifthOperatorData = fifthOperatorData;
            FifthOperatorData_DisplayName = fifthOperatorData_DisplayName;
            FifthOperatorData_Enable = fifthOperatorData_Enable;
            FifthOperatorData_Show = fifthOperatorData_Show;
            FifthOperatorData_Property = fifthOperatorData_Property;
        }


        /// <summary>
        /// 表名
        /// </summary>
        public virtual string InspectionSignatureName { get; set; }

        #region 操作者1
        /// <summary>
        /// 操作者1值
        /// </summary>
        public virtual string FirstOperator { get;  set; }
        /// <summary>
        /// 操作者1列名
        /// </summary>
        public virtual string FirstOperator_DisplayName { get;  set; }
        /// <summary>
        /// 是否可操作
        /// </summary>
        public virtual bool FirstOperator_Enable { get;  set; } = false;
        /// <summary>
        /// 是否显示
        /// </summary>
        public virtual bool FirstOperator_Show { get;  set; } = false;
        /// <summary>
        /// 是否合并
        /// </summary>
        public virtual int FirstOperator_Property { get;  set; } = 0;
        #endregion

        #region 操作者1时间
        /// <summary>
        /// 操作者1值
        /// </summary>
        public virtual DateTime? FirstOperatorData { get;  set; }
        /// <summary>
        /// 操作者1列名
        /// </summary>
        public virtual string FirstOperatorData_DisplayName { get;  set; }
        /// <summary>
        /// 是否可操作
        /// </summary>
        public virtual bool FirstOperatorData_Enable { get;  set; } = false;
        /// <summary>
        /// 是否显示
        /// </summary>
        public virtual bool FirstOperatorData_Show { get;  set; } = false;
        /// <summary>
        /// 是否合并
        /// </summary>
        public virtual int FirstOperatorData_Property { get;  set; } = 0;
        #endregion

        #region 操作者2
        /// <summary>
        /// 操作者2值
        /// </summary>
        public virtual string SecondOperator { get;  set; }
        /// <summary>
        /// 操作者2列名
        /// </summary>
        public virtual string SecondOperator_DisplayName { get;  set; }
        /// <summary>
        /// 是否可操作
        /// </summary>
        public virtual bool SecondOperator_Enable { get;  set; } = false;
        /// <summary>
        /// 是否显示
        /// </summary>
        public virtual bool SecondOperator_Show { get;  set; } = false;
        /// <summary>
        /// 是否合并
        /// </summary>
        public virtual int SecondOperator_Property { get;  set; } = 0;
        #endregion

        #region 操作者2时间
        /// <summary>
        /// 操作者2值
        /// </summary>
        public virtual DateTime? SecondOperatorData { get;  set; }
        /// <summary>
        /// 操作者2列名
        /// </summary>
        public virtual string SecondOperatorData_DisplayName { get;  set; }
        /// <summary>
        /// 是否可操作
        /// </summary>
        public virtual bool SecondOperatorData_Enable { get;  set; } = false;
        /// <summary>
        /// 是否显示
        /// </summary>
        public virtual bool SecondOperatorData_Show { get;  set; } = false;
        /// <summary>
        /// 是否合并
        /// </summary>
        public virtual int SecondOperatorData_Property { get;  set; } = 0;
        #endregion

        #region 操作者3
        /// <summary>
        /// 操作者3值
        /// </summary>
        public virtual string ThirdOperator { get;  set; }
        /// <summary>
        /// 操作者3列名
        /// </summary>
        public virtual string ThirdOperator_DisplayName { get;  set; }
        /// <summary>
        /// 是否可操作
        /// </summary>
        public virtual bool ThirdOperator_Enable { get;  set; } = false;
        /// <summary>
        /// 是否显示
        /// </summary>
        public virtual bool ThirdOperator_Show { get;  set; } = false;
        /// <summary>
        /// 是否合并
        /// </summary>
        public virtual int ThirdOperator_Property { get;  set; } = 0;
        #endregion

        #region 操作者3时间
        /// <summary>
        /// 操作者3值
        /// </summary>
        public virtual DateTime? ThirdOperatorData { get;  set; }
        /// <summary>
        /// 操作者3列名
        /// </summary>
        public virtual string ThirdOperatorData_DisplayName { get;  set; }
        /// <summary>
        /// 是否可操作
        /// </summary>
        public virtual bool ThirdOperatorData_Enable { get;  set; } = false;
        /// <summary>
        /// 是否显示
        /// </summary>
        public virtual bool ThirdOperatorData_Show { get;  set; } = false;
        /// <summary>
        /// 是否合并
        /// </summary>
        public virtual int ThirdOperatorData_Property { get;  set; } = 0;
        #endregion

        #region 操作者4
        /// <summary>
        /// 操作者4值
        /// </summary>
        public virtual string FourthOperator { get;  set; }
        /// <summary>
        /// 操作者4列名
        /// </summary>
        public virtual string FourthOperator_DisplayName { get;  set; }
        /// <summary>
        /// 是否可操作
        /// </summary>
        public virtual bool FourthOperator_Enable { get;  set; } = false;
        /// <summary>
        /// 是否显示
        /// </summary>
        public virtual bool FourthOperator_Show { get;  set; } = false;
        /// <summary>
        /// 是否合并
        /// </summary>
        public virtual int FourthOperator_Property { get;  set; } = 0;
        #endregion

        #region 操作者4时间
        /// <summary>
        /// 操作者4值
        /// </summary>
        public virtual DateTime? FourthOperatorData { get;  set; }
        /// <summary>
        /// 操作者4列名
        /// </summary>
        public virtual string FourthOperatorData_DisplayName { get;  set; }
        /// <summary>
        /// 是否可操作
        /// </summary>
        public virtual bool FourthOperatorData_Enable { get;  set; } = false;
        /// <summary>
        /// 是否显示
        /// </summary>
        public virtual bool FourthOperatorData_Show { get;  set; } = false;
        /// <summary>
        /// 是否合并
        /// </summary>
        public virtual int FourthOperatorData_Property { get;  set; } = 0;
        #endregion

        #region 操作者5
        /// <summary>
        /// 操作者1值
        /// </summary>
        public virtual string FifthOperator { get;  set; }
        /// <summary>
        /// 操作者5列名
        /// </summary>
        public virtual string FifthOperator_DisplayName { get;  set; }
        /// <summary>
        /// 是否可操作
        /// </summary>
        public virtual bool FifthOperator_Enable { get;  set; } = false;
        /// <summary>
        /// 是否显示
        /// </summary>
        public virtual bool FifthOperator_Show { get;  set; } = false;
        /// <summary>
        /// 是否合并
        /// </summary>
        public virtual int FifthOperator_Property { get;  set; } = 0;
        #endregion

        #region 操作者5时间
        /// <summary>
        /// 操作者5值
        /// </summary>
        public virtual DateTime? FifthOperatorData { get;  set; }
        /// <summary>
        /// 操作者5列名
        /// </summary>
        public virtual string FifthOperatorData_DisplayName { get;  set; }
        /// <summary>
        /// 是否可操作
        /// </summary>
        public virtual bool FifthOperatorData_Enable { get;  set; } = false;
        /// <summary>
        /// 是否显示
        /// </summary>
        public virtual bool FifthOperatorData_Show { get;  set; } = false;
        /// <summary>
        /// 是否合并
        /// </summary>
        public virtual int FifthOperatorData_Property { get;  set; } = 0;
        #endregion
    }

    public class RecordRequirementsShootDto : FullAuditedEntity<Guid>
    {
        public RecordRequirementsShootDto()
        {

        }

        public RecordRequirementsShootDto(string recordLocation, string recordLocation_DisplayName, bool recordLocation_Enable, bool recordLocation_Show, int recordLocation_Property, string recordStatus, string recordStatus_DisplayName, bool recordStatus_Enable, bool recordStatus_Show, int recordStatus_Property, string recordRequire, string recordRequire_DisplayName, bool recordRequire_Enable, bool recordRequire_Show, int recordRequire_Property, string recordMainopoint, string recordMainopoint_DisplayName, bool recordMainopoint_Enable, bool recordMainopoint_Show, int recordMainopoint_Property, string designerDemand, string designerDemand_DisplayName, bool designerDemand_Enable, bool designerDemand_Show, int designerDemand_Property, string processorDemand, string processorDemand_DisplayName, bool processorDemand_Enable, bool processorDemand_Show, int processorDemand_Property, string remarks, string remarks_DisplayName, bool remarks_Enable, bool remarks_Show, int remarks_Property)
        {
            RecordLocation = recordLocation;
            RecordLocation_DisplayName = recordLocation_DisplayName;
            RecordLocation_Enable = recordLocation_Enable;
            RecordLocation_Show = recordLocation_Show;
            RecordLocation_Property = recordLocation_Property;
            RecordStatus = recordStatus;
            RecordStatus_DisplayName = recordStatus_DisplayName;
            RecordStatus_Enable = recordStatus_Enable;
            RecordStatus_Show = recordStatus_Show;
            RecordStatus_Property = recordStatus_Property;
            RecordRequire = recordRequire;
            RecordRequire_DisplayName = recordRequire_DisplayName;
            RecordRequire_Enable = recordRequire_Enable;
            RecordRequire_Show = recordRequire_Show;
            RecordRequire_Property = recordRequire_Property;
            RecordMainopoint = recordMainopoint;
            RecordMainopoint_DisplayName = recordMainopoint_DisplayName;
            RecordMainopoint_Enable = recordMainopoint_Enable;
            RecordMainopoint_Show = recordMainopoint_Show;
            RecordMainopoint_Property = recordMainopoint_Property;
            DesignerDemand = designerDemand;
            DesignerDemand_DisplayName = designerDemand_DisplayName;
            DesignerDemand_Enable = designerDemand_Enable;
            DesignerDemand_Show = designerDemand_Show;
            DesignerDemand_Property = designerDemand_Property;
            ProcessorDemand = processorDemand;
            ProcessorDemand_DisplayName = processorDemand_DisplayName;
            ProcessorDemand_Enable = processorDemand_Enable;
            ProcessorDemand_Show = processorDemand_Show;
            ProcessorDemand_Property = processorDemand_Property;
            Remarks = remarks;
            Remarks_DisplayName = remarks_DisplayName;
            Remarks_Enable = remarks_Enable;
            Remarks_Show = remarks_Show;
            Remarks_Property = remarks_Property;
        }


        #region B1记录位置
        /// <summary>
        /// 记录位置值
        /// </summary>
        public string RecordLocation { get;  set; }
        /// <summary>
        /// 记录位置列名
        /// </summary>
        public virtual string RecordLocation_DisplayName { get;  set; }
        /// <summary>
        /// 是否可操作
        /// </summary>
        public bool RecordLocation_Enable { get;  set; } = false;
        /// <summary>
        /// 是否显示
        /// </summary>
        public bool RecordLocation_Show { get;  set; } = false;
        /// <summary>
        /// 是否合并
        /// </summary>
        public virtual int RecordLocation_Property { get;  set; } = 0;
        #endregion

        #region 记录状态
        /// <summary>
        /// 记录状态值
        /// </summary>
        public string RecordStatus { get;  set; }
        /// <summary>
        /// 记录状态列名
        /// </summary>
        public virtual string RecordStatus_DisplayName { get;  set; }
        /// <summary>
        /// 是否可操作
        /// </summary>
        public bool RecordStatus_Enable { get;  set; } = false;
        /// <summary>
        /// 是否显示
        /// </summary>
        public bool RecordStatus_Show { get;  set; } = false;
        /// <summary>
        /// 是否合并
        /// </summary>
        public virtual int RecordStatus_Property { get;  set; } = 0;
        #endregion

        #region 记录要求
        /// <summary>
        /// 记录要求值
        /// </summary>
        public string RecordRequire { get;  set; }
        /// <summary>
        /// 记录要求列名
        /// </summary>
        public virtual string RecordRequire_DisplayName { get;  set; }
        /// <summary>
        /// 是否可操作
        /// </summary>
        public bool RecordRequire_Enable { get;  set; } = false;
        /// <summary>
        /// 是否显示
        /// </summary>
        public bool RecordRequire_Show { get;  set; } = false;
        /// <summary>
        /// 是否合并
        /// </summary>
        public virtual int RecordRequire_Property { get;  set; } = 0;
        #endregion

        #region 记录要点
        /// <summary>
        /// 记录要点值
        /// </summary>
        public string RecordMainopoint { get;  set; }
        /// <summary>
        /// 记录要点列名
        /// </summary>
        public virtual string RecordMainopoint_DisplayName { get;  set; }
        /// <summary>
        /// 是否可操作
        /// </summary>
        public bool RecordMainopoint_Enable { get;  set; } = false;
        /// <summary>
        /// 是否显示
        /// </summary>
        public bool RecordMainopoint_Show { get;  set; } = false;
        /// <summary>
        /// 是否合并
        /// </summary>
        public virtual int RecordMainopoint_Property { get;  set; } = 0;
        #endregion

        #region 设计要求
        /// <summary>
        /// 设计要求值
        /// </summary>
        public string DesignerDemand { get;  set; }
        /// <summary>
        /// 设计要求列名
        /// </summary>
        public virtual string DesignerDemand_DisplayName { get;  set; }
        /// <summary>
        /// 是否可操作
        /// </summary>
        public bool DesignerDemand_Enable { get;  set; } = false;
        /// <summary>
        /// 是否显示
        /// </summary>
        public bool DesignerDemand_Show { get;  set; } = false;
        /// <summary>
        /// 是否合并
        /// </summary>
        public virtual int DesignerDemand_Property { get;  set; } = 0;
        #endregion

        #region 工艺要求
        /// <summary>
        /// 工艺要求值
        /// </summary>
        public string ProcessorDemand { get;  set; }
        /// <summary>
        /// 工艺要求列名
        /// </summary>
        public virtual string ProcessorDemand_DisplayName { get;  set; }
        /// <summary>
        /// 是否可操作
        /// </summary>
        public bool ProcessorDemand_Enable { get;  set; } = false;
        /// <summary>
        /// 是否显示
        /// </summary>
        public bool ProcessorDemand_Show { get;  set; } = false;
        /// <summary>
        /// 是否合并
        /// </summary>
        public virtual int ProcessorDemand_Property { get;  set; } = 0;
        #endregion

        #region 备注
        /// <summary>
        /// 备注值
        /// </summary>
        public string Remarks { get;  set; }
        /// <summary>
        /// 备注列名
        /// </summary>
        public virtual string Remarks_DisplayName { get;  set; }
        /// <summary>
        /// 是否可操作
        /// </summary>
        public bool Remarks_Enable { get;  set; } = false;
        /// <summary>
        /// 是否显示
        /// </summary>
        public bool Remarks_Show { get;  set; } = false;
        /// <summary>
        /// 是否合并
        /// </summary>
        public virtual int Remarks_Property { get;  set; } = 0;
        #endregion
    }

    public class MultiMediaShootDto : FullAuditedEntity<Guid>
    {
        public MultiMediaShootDto()
        {

        }
        public MultiMediaShootDto(string photoNo, string photoNo_DisplayName, bool photoNo_Enable, bool photoNo_Show, int photoNo_Property, string secondPhotoNo = null, string secondPhotoNo_DisplayName = null, bool secondPhotoNo_Enable = false, bool secondPhotoNo_Show = false, int secondPhotoNo_Property = 0, string thirdPhotoNo = null, string thirdPhotoNo_DisplayName = null, bool thirdPhotoNo_Enable = false, bool thirdPhotoNo_Show = false, int thirdPhotoNo_Property = 0, string fourthPhotoNo = null, string fourthPhotoNo_DisplayName = null, bool fourthPhotoNo_Enable = false, bool fourthPhotoNo_Show = false, int fourthPhotoNo_Property = 0)
        {
            PhotoNo = photoNo;
            PhotoNo_DisplayName = photoNo_DisplayName;
            PhotoNo_Enable = photoNo_Enable;
            PhotoNo_Show = photoNo_Show;
            PhotoNo_Property = photoNo_Property;
            SecondPhotoNo = secondPhotoNo;
            SecondPhotoNo_DisplayName = secondPhotoNo_DisplayName;
            SecondPhotoNo_Enable = secondPhotoNo_Enable;
            SecondPhotoNo_Show = secondPhotoNo_Show;
            SecondPhotoNo_Property = secondPhotoNo_Property;
            ThirdPhotoNo = thirdPhotoNo;
            ThirdPhotoNo_DisplayName = thirdPhotoNo_DisplayName;
            ThirdPhotoNo_Enable = thirdPhotoNo_Enable;
            ThirdPhotoNo_Show = thirdPhotoNo_Show;
            ThirdPhotoNo_Property = thirdPhotoNo_Property;
            FourthPhotoNo = fourthPhotoNo;
            FourthPhotoNo_DisplayName = fourthPhotoNo_DisplayName;
            FourthPhotoNo_Enable = fourthPhotoNo_Enable;
            FourthPhotoNo_Show = fourthPhotoNo_Show;
            FourthPhotoNo_Property = fourthPhotoNo_Property;
        }
        #region 照相（摄像）编号
        /// <summary>
        /// 所属部段值
        /// </summary>
        public virtual string PhotoNo { get;  set; }
        /// <summary>
        /// 所属部段列名
        /// </summary>
        public virtual string PhotoNo_DisplayName { get;  set; }
        /// <summary>
        /// 是否可操作
        /// </summary>
        public virtual bool PhotoNo_Enable { get;  set; } = false;
        /// <summary>
        /// 是否显示
        /// </summary>
        public virtual bool PhotoNo_Show { get;  set; } = false;
        /// <summary>
        /// 是否合并
        /// </summary>
        public virtual int PhotoNo_Property { get;  set; } = 0;
        #endregion

        #region 照相（摄像）编号2
        /// <summary>
        /// 所属部段值
        /// </summary>
        public virtual string SecondPhotoNo { get;  set; }
        /// <summary>
        /// 所属部段列名
        /// </summary>
        public virtual string SecondPhotoNo_DisplayName { get;  set; }
        /// <summary>
        /// 是否可操作
        /// </summary>
        public virtual bool SecondPhotoNo_Enable { get;  set; } = false;
        /// <summary>
        /// 是否显示
        /// </summary>
        public virtual bool SecondPhotoNo_Show { get;  set; } = false;
        /// <summary>
        /// 是否合并
        /// </summary>
        public virtual int SecondPhotoNo_Property { get;  set; } = 0;
        #endregion

        #region 照相（摄像）编号3
        /// <summary>
        /// 所属部段值
        /// </summary>
        public virtual string ThirdPhotoNo { get;  set; }
        /// <summary>
        /// 所属部段列名
        /// </summary>
        public virtual string ThirdPhotoNo_DisplayName { get;  set; }
        /// <summary>
        /// 是否可操作
        /// </summary>
        public virtual bool ThirdPhotoNo_Enable { get;  set; } = false;
        /// <summary>
        /// 是否显示
        /// </summary>
        public virtual bool ThirdPhotoNo_Show { get;  set; } = false;
        /// <summary>
        /// 是否合并
        /// </summary>
        public virtual int ThirdPhotoNo_Property { get;  set; } = 0;
        #endregion

        #region 照相（摄像）编号4
        /// <summary>
        /// 所属部段值
        /// </summary>
        public virtual string FourthPhotoNo { get;  set; }
        /// <summary>
        /// 所属部段列名
        /// </summary>
        public virtual string FourthPhotoNo_DisplayName { get;  set; }
        /// <summary>
        /// 是否可操作
        /// </summary>
        public virtual bool FourthPhotoNo_Enable { get;  set; } = false;
        /// <summary>
        /// 是否显示
        /// </summary>
        public virtual bool FourthPhotoNo_Show { get;  set; } = false;
        /// <summary>
        /// 是否合并
        /// </summary>
        public virtual int FourthPhotoNo_Property { get;  set; } = 0;
        #endregion
    }

    public class MeasuredResultShootDto : FullAuditedEntity<Guid>
    {
        public MeasuredResultShootDto()
        {

        }

        public MeasuredResultShootDto(string firstMeasuredValues, string firstMeasuredValues_DisplayName, bool firstMeasuredValues_Enable, bool firstMeasuredValues_Show, int firstMeasuredValues_Property, string secondMeasuredValues, string secondMeasuredValues_DisplayName, bool secondMeasuredValues_Enable, bool secondMeasuredValues_Show, int secondMeasuredValues_Property, string thirdMeasuredValues, string thirdMeasuredValues_DisplayName, bool thirdMeasuredValues_Enable, bool thirdMeasuredValues_Show, int thirdMeasuredValues_Property, string fourthMeasuredValues, string fourthMeasuredValues_DisplayName, bool fourthMeasuredValues_Enable, bool fourthMeasuredValues_Show, int fourthMeasuredValues_Property, string firstConfirmResult, string firstConfirmResult_DisplayName, bool firstConfirmResult_Enable, bool firstConfirmResult_Show, int firstConfirmResult_Property, string secondConfirmResult, string secondConfirmResult_DisplayName, bool secondConfirmResult_Enable, bool secondConfirmResult_Show, int secondConfirmResult_Property, string thirdConfirmResult, string thirdConfirmResult_DisplayName, bool thirdConfirmResult_Enable, bool thirdConfirmResult_Show, int thirdConfirmResult_Property, string measuredActual, string measuredActual_DisplayName, bool measuredActual_Enable, bool measuredActual_Show, int measuredActual_Property)
        {
            FirstMeasuredValues = firstMeasuredValues;
            FirstMeasuredValues_DisplayName = firstMeasuredValues_DisplayName;
            FirstMeasuredValues_Enable = firstMeasuredValues_Enable;
            FirstMeasuredValues_Show = firstMeasuredValues_Show;
            FirstMeasuredValues_Property = firstMeasuredValues_Property;
            SecondMeasuredValues = secondMeasuredValues;
            SecondMeasuredValues_DisplayName = secondMeasuredValues_DisplayName;
            SecondMeasuredValues_Enable = secondMeasuredValues_Enable;
            SecondMeasuredValues_Show = secondMeasuredValues_Show;
            SecondMeasuredValues_Property = secondMeasuredValues_Property;
            ThirdMeasuredValues = thirdMeasuredValues;
            ThirdMeasuredValues_DisplayName = thirdMeasuredValues_DisplayName;
            ThirdMeasuredValues_Enable = thirdMeasuredValues_Enable;
            ThirdMeasuredValues_Show = thirdMeasuredValues_Show;
            ThirdMeasuredValues_Property = thirdMeasuredValues_Property;
            FourthMeasuredValues = fourthMeasuredValues;
            FourthMeasuredValues_DisplayName = fourthMeasuredValues_DisplayName;
            FourthMeasuredValues_Enable = fourthMeasuredValues_Enable;
            FourthMeasuredValues_Show = fourthMeasuredValues_Show;
            FourthMeasuredValues_Property = fourthMeasuredValues_Property;
            FirstConfirmResult = firstConfirmResult;
            FirstConfirmResult_DisplayName = firstConfirmResult_DisplayName;
            FirstConfirmResult_Enable = firstConfirmResult_Enable;
            FirstConfirmResult_Show = firstConfirmResult_Show;
            FirstConfirmResult_Property = firstConfirmResult_Property;
            SecondConfirmResult = secondConfirmResult;
            SecondConfirmResult_DisplayName = secondConfirmResult_DisplayName;
            SecondConfirmResult_Enable = secondConfirmResult_Enable;
            SecondConfirmResult_Show = secondConfirmResult_Show;
            SecondConfirmResult_Property = secondConfirmResult_Property;
            ThirdConfirmResult = thirdConfirmResult;
            ThirdConfirmResult_DisplayName = thirdConfirmResult_DisplayName;
            ThirdConfirmResult_Enable = thirdConfirmResult_Enable;
            ThirdConfirmResult_Show = thirdConfirmResult_Show;
            ThirdConfirmResult_Property = thirdConfirmResult_Property;
            MeasuredActual = measuredActual;
            MeasuredActual_DisplayName = measuredActual_DisplayName;
            MeasuredActual_Enable = measuredActual_Enable;
            MeasuredActual_Show = measuredActual_Show;
            MeasuredActual_Property = measuredActual_Property;
        }



        #region 实测值1
        /// <summary>
        /// 实测值1
        /// </summary>
        public virtual string FirstMeasuredValues { get;  set; }
        /// <summary>
        /// 实测值1列名
        /// </summary>
        public virtual string FirstMeasuredValues_DisplayName { get;  set; }
        /// <summary>
        /// 是否可操作
        /// </summary>
        public virtual bool FirstMeasuredValues_Enable { get;  set; } = false;
        /// <summary>
        /// 是否显示
        /// </summary>
        public virtual bool FirstMeasuredValues_Show { get;  set; } = false;
        /// <summary>
        /// 是否合并
        /// </summary>
        public virtual int FirstMeasuredValues_Property { get;  set; } = 0;
        #endregion

        #region E4实测值2
        /// <summary>
        /// 实测值2
        /// </summary>
        public virtual string SecondMeasuredValues { get;  set; }
        /// <summary>
        /// 实测值2列名
        /// </summary>
        public virtual string SecondMeasuredValues_DisplayName { get;  set; }
        /// <summary>
        /// 是否可操作
        /// </summary>
        public virtual bool SecondMeasuredValues_Enable { get;  set; } = false;
        /// <summary>
        /// 是否显示
        /// </summary>
        public virtual bool SecondMeasuredValues_Show { get;  set; } = false;
        /// <summary>
        /// 是否合并
        /// </summary>
        public virtual int SecondMeasuredValues_Property { get;  set; } = 0;
        #endregion

        #region E5实测值3
        /// <summary>
        /// 实测值3
        /// </summary>
        public virtual string ThirdMeasuredValues { get;  set; }
        /// <summary>
        /// 实测值3列名
        /// </summary>
        public virtual string ThirdMeasuredValues_DisplayName { get;  set; }
        /// <summary>
        /// 是否可操作
        /// </summary>
        public virtual bool ThirdMeasuredValues_Enable { get;  set; } = false;
        /// <summary>
        /// 是否显示
        /// </summary>
        public virtual bool ThirdMeasuredValues_Show { get;  set; } = false;
        /// <summary>
        /// 是否合并
        /// </summary>
        public virtual int ThirdMeasuredValues_Property { get;  set; } = 0;
        #endregion

        #region E6实测值4
        /// <summary>
        /// 实测值4
        /// </summary>
        public virtual string FourthMeasuredValues { get;  set; }
        /// <summary>
        /// 实测值4列名
        /// </summary>
        public virtual string FourthMeasuredValues_DisplayName { get;  set; }
        /// <summary>
        /// 是否可操作
        /// </summary>
        public virtual bool FourthMeasuredValues_Enable { get;  set; } = false;
        /// <summary>
        /// 是否显示
        /// </summary>
        public virtual bool FourthMeasuredValues_Show { get;  set; } = false;
        /// <summary>
        /// 是否合并
        /// </summary>
        public virtual int FourthMeasuredValues_Property { get;  set; } = 0;
        #endregion

        #region E2确认结果1
        /// <summary>
        /// 确认结果值
        /// </summary>
        public virtual string FirstConfirmResult { get;  set; }
        /// <summary>
        /// 确认结果列名
        /// </summary>
        public virtual string FirstConfirmResult_DisplayName { get;  set; }
        /// <summary>
        /// 是否可操作
        /// </summary>
        public virtual bool FirstConfirmResult_Enable { get;  set; } = false;
        /// <summary>
        /// 是否显示
        /// </summary>
        public virtual bool FirstConfirmResult_Show { get;  set; } = false;
        /// <summary>
        /// 是否合并
        /// </summary>
        public virtual int FirstConfirmResult_Property { get;  set; } = 0;
        #endregion

        #region E7确认结果2
        /// <summary>
        /// 确认结果值
        /// </summary>
        public virtual string SecondConfirmResult { get;  set; }
        /// <summary>
        /// 确认结果列名
        /// </summary>
        public virtual string SecondConfirmResult_DisplayName { get;  set; }
        /// <summary>
        /// 是否可操作
        /// </summary>
        public virtual bool SecondConfirmResult_Enable { get;  set; } = false;
        /// <summary>
        /// 是否显示
        /// </summary>
        public virtual bool SecondConfirmResult_Show { get;  set; } = false;
        /// <summary>
        /// 是否合并
        /// </summary>
        public virtual int SecondConfirmResult_Property { get;  set; } = 0;
        #endregion

        #region E8确认结果3
        /// <summary>
        /// 确认结果值
        /// </summary>
        public virtual string ThirdConfirmResult { get;  set; }
        /// <summary>
        /// 确认结果列名
        /// </summary>
        public virtual string ThirdConfirmResult_DisplayName { get;  set; }
        /// <summary>
        /// 是否可操作
        /// </summary>
        public virtual bool ThirdConfirmResult_Enable { get;  set; } = false;
        /// <summary>
        /// 是否显示
        /// </summary>
        public virtual bool ThirdConfirmResult_Show { get;  set; } = false;
        /// <summary>
        /// 是否合并
        /// </summary>
        public virtual int ThirdConfirmResult_Property { get;  set; } = 0;
        #endregion

        #region E3实测情况
        /// <summary>
        /// 实测情况值
        /// </summary>
        public virtual string MeasuredActual { get;  set; }
        /// <summary>
        /// 实测情况列名
        /// </summary>
        public virtual string MeasuredActual_DisplayName { get;  set; }
        /// <summary>
        /// 是否可操作
        /// </summary>
        public virtual bool MeasuredActual_Enable { get;  set; } = false;
        /// <summary>
        /// 是否显示
        /// </summary>
        public virtual bool MeasuredActual_Show { get;  set; } = false;
        /// <summary>
        /// 是否合并
        /// </summary>
        public virtual int MeasuredActual_Property { get;  set; } = 0;
        #endregion
    }
    public class EnvironmentShootDto : FullAuditedEntity<Guid>
    {
        public EnvironmentShootDto()
        {

        }

        public EnvironmentShootDto(string temperature, string temperature_DisplayName, bool temperature_Enable, bool temperature_Show, int temperature_Property, string humidity, string humidity_DisplayName, bool humidity_Enable, bool humidity_Show, int humidity_Property, string atmPressure, string atmPressure_DisplayName, bool atmPressure_Enable, bool atmPressure_Show, int atmPressure_Property)
        {
            Temperature = temperature;
            Temperature_DisplayName = temperature_DisplayName;
            Temperature_Enable = temperature_Enable;
            Temperature_Show = temperature_Show;
            Temperature_Property = temperature_Property;
            Humidity = humidity;
            Humidity_DisplayName = humidity_DisplayName;
            Humidity_Enable = humidity_Enable;
            Humidity_Show = humidity_Show;
            Humidity_Property = humidity_Property;
            AtmPressure = atmPressure;
            AtmPressure_DisplayName = atmPressure_DisplayName;
            AtmPressure_Enable = atmPressure_Enable;
            AtmPressure_Show = atmPressure_Show;
            AtmPressure_Property = atmPressure_Property;
        }

        #region 温度
        /// <summary>
        /// 温度值
        /// </summary>
        public virtual string Temperature { get;  set; }
        /// <summary>
        /// 温度列名
        /// </summary>
        public virtual string Temperature_DisplayName { get;  set; }
        /// <summary>
        /// 是否可操作
        /// </summary>
        public virtual bool Temperature_Enable { get;  set; } = true;
        /// <summary>
        /// 是否显示
        /// </summary>
        public virtual bool Temperature_Show { get;  set; } = false;
        /// <summary>
        /// 是否合并
        /// </summary>
        public virtual int Temperature_Property { get;  set; } = 0;
        #endregion

        #region 湿度
        /// <summary>
        /// 湿度值
        /// </summary>
        public virtual string Humidity { get;  set; }
        /// <summary>
        /// 湿度列名
        /// </summary>
        public virtual string Humidity_DisplayName { get;  set; }
        /// <summary>
        /// 是否可操作
        /// </summary>
        public virtual bool Humidity_Enable { get;  set; } = false;
        /// <summary>
        /// 是否显示
        /// </summary>
        public virtual bool Humidity_Show { get;  set; } = false;
        /// <summary>
        /// 是否合并
        /// </summary>
        public virtual int Humidity_Property { get;  set; } = 0;
        #endregion

        #region 大气压力
        /// <summary>
        /// 大气压力值
        /// </summary>
        public virtual string AtmPressure { get;  set; }
        /// <summary>
        /// 大气压力列名
        /// </summary>
        public virtual string AtmPressure_DisplayName { get;  set; }
        /// <summary>
        /// 是否可操作
        /// </summary>
        public virtual bool AtmPressure_Enable { get;  set; } = false;
        /// <summary>
        /// 是否显示
        /// </summary>
        public virtual bool AtmPressure_Show { get;  set; } = false;
        /// <summary>
        /// 是否合并
        /// </summary>
        public virtual int AtmPressure_Property { get;  set; } = 0;
        #endregion
    }

}
